Systems and methods for creating 3d objects

ABSTRACT

Systems and methods for providing price quotes for 3D objects are described herein. In one embodiment, costs related to generating a 3D object molded from a 3D printer mold may be based on various parameters. The process for generating a price quote may include uploading an initial file to a server and converting that file into a 3D CAD file. The method may also include selecting units, materials, a finish, and/or a quantity of objects to be made. Based on the selections, the server may generate a price quote to produce the one or more objects, and a checkout option may be provided allowing the user to purchase the one or more objects.

CROSS-REFERENCE TO RELATED PROVISIONAL APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/513,239, filed Jul. 16, 2019, which is a continuation of U.S. patentapplication Ser. No. 14/217,134, now U.S. Pat. No. 10,354,304, whichclaims the benefit of U.S. Provisional Patent Application No.61/818,200, filed on May 1, 2013, and U.S. Provisional PatentApplication No. 61/801,373, filed on Mar. 15, 2013, both of which areincorporated herein by reference in their entirety.

FIELD OF THE INVENTION

Various embodiments generally relate to systems and methods forproviding price quotes for 3D objects and 3D molds for producing 3Dobjects.

BACKGROUND OF THE DISCLOSURE

3D printing is a rapidly evolving technology field providing individualswith the ability to produce 3D objects quickly and cheaply relative toother methods. However, as 3D printing designs increase in complexity,the time and costs associated with producing 3D printed objects alsoincreases. It would therefore be beneficial to provide systems andmethods for printing 3D objects as well as 3D molding structures forrapidly creating 3D objects while accurately anticipating costs.

SUMMARY OF THE DISCLOSURE

Systems and methods for providing price quotes for printing 3D objectsand 3D molding structures for creating 3D objects are provided. Suchsystems may include one or more users accessing a server across anetwork. The one or more users may want to produce a 3D object, and the3D object may be molded from a 3D printer. Additionally, the one or moreusers may want a 3D printed mold to use to create 3D objects. The useror users may upload one or more files from a client device to the serverwhere price quotes may be generated based on the initially uploadedfile(s) and various parameters selected by the user. The user selectedparameter may include dimensions, material or materials, finish, and/orquantity of objects, for example. In some embodiments, the complexity ofthe object may contribute to the cost of production. In someembodiments, the complexity of the mold may contribute to the cost ofproduction. The server may calculate the price associated with producinga 3D object or a 3D printed mold automatically based on one or more ofthe aforementioned factors. In this way a user can quickly and easilydetermine the costs associated with production of 3D objects and/or 3Dprinted molds.

A method for providing price quotes for 3D objects molded from a 3Dprinted mold may include providing an initial file to be uploaded to aserver. The initial file can be, or can be converted to, a 3D ComputerAided Design (“CAD”) file, and parameters such as dimensional units,materials, finish, and quantity of products can be entered and/orselected. After selection of the parameters, a price quote may begenerated for the product. In some embodiments, a checkout option may beprovided so that a user may place an order for the product or productsbased on the received price quotes. In some embodiments, the price quotefor a particular object may be stored on the server for later purchasingor for updating the server's cost model related to various parameters.In some embodiments, more than one file may be uploaded and price quotesfor the files may be generated sequentially or in parallel. In furtherembodiments, the mold itself used to create the 3D object may be formedusing a substantially similar process to that used for making the 3Dobject.

BRIEF DESCRIPTION OF THE DRAWINGS

The patent or application file contains at least one drawing executed incolor. Copies of this patent or patent application publication withcolor drawing(s) will be provided by the Office upon request and paymentof the necessary fee.

The above and other features of the present invention, its nature andvarious advantages will be more apparent upon consideration of thefollowing detailed description, taken in conjunction with theaccompanying drawings in which:

FIG. 1 is a block diagram of a system in accordance with variousembodiments;

FIG. 2 is an illustrative diagram of a client-side user interface inaccordance with various embodiments;

FIG. 3 is an illustrative diagram of another client-side user interfacein accordance with various embodiments;

FIG. 4 is an illustrative diagram of still another client-side userinterface in accordance with various embodiments;

FIG. 5 is an illustrative diagram of still yet another client-side userinterface in accordance with various embodiments;

FIG. 6 is an illustrative diagram of further still another client-sideuser interface in accordance with various embodiments;

FIG. 7 is a flow chart of an illustrative process for generating a pricequote in accordance with various embodiments;

FIG. 8 is another flow chart of an illustrative process for generating aprice quote in accordance with various embodiments;

FIG. 9 is still another flow chart of an illustrative process forgenerating a price quote in accordance with various embodiments;

FIGS. 10A and 10B are illustrative diagrams of client-side userinterfaces of geometry fixing capabilities in accordance with variousembodiments;

FIG. 11 is a flowchart of an illustrative process for fixing geometriesof uploaded files in accordance with various embodiments;

FIGS. 12A and 12B are illustrative diagrams of client-side userinterfaces for geometry customization in accordance with variousembodiments;

FIG. 13 is a flowchart of an illustrative process for customizinggeometry in accordance with various embodiments;

FIG. 14 is an illustrative diagram of a client-side user interfaceshowing design optimization capabilities in accordance with variousembodiments;

FIG. 15 is a flowchart of an illustrative process for optimizing designsin accordance with various embodiments;

FIGS. 16A and 16B are illustrative diagrams of client-side userinterfaces for using application specific tools with designs inaccordance with various embodiments;

FIG. 17 is a flowchart of an illustrative process for applyingapplication specific tools in accordance with various embodiments;

FIGS. 18A and 18B are illustrative diagrams of client-side userinterfaces for converting 2D files into 3D files in accordance withvarious embodiments;

FIG. 19 is a flowchart of an illustrative process for converting 2Dfiles into 3D files in accordance with various embodiments;

FIG. 20 is an illustrative diagram of a client-side user interface fordetermining optimization capabilities for a design in accordance withvarious embodiments;

FIG. 21 is a flowchart of an illustrative process for designoptimization capabilities in accordance with various embodiments;

FIGS. 22A and 22B are illustrative diagrams of client-side userinterfaces for applying finite element analysis to a design inaccordance with various embodiments; and

FIG. 23 is a flowchart of an illustrative process for applying finiteelement analysis to a design in accordance with various embodiments.

DETAILED DESCRIPTION OF THE DISCLOSURE

The present invention may take form in various components andarrangements of components, and in various techniques, methods, orprocedures and arrangements of steps. The referenced drawings are onlyfor the purpose of illustrated embodiments, and are not to be construedas limiting the present invention. Various inventive features aredescribed below that can each be used independently of one another or incombination with other features.

FIG. 1 is a block diagram depicting a system in accordance with variousembodiments. System 100 may include client devices 102 and server 104that may communicate over network 106. Client device 102 may, in someembodiments, communicate with both server 104 and/or one or moreadditional client devices 102. Persons of ordinary skill in the art willrecognize that although only three client devices 102 are shown in FIG.1 , any number of client devices may be included, and the use of threeclient devices is merely exemplary.

Client devices 102 may correspond to any electronic device or systemcapable of communicating over network 106 with server 104 and/or one ormore additional client devices. Various types of client devices mayinclude, but are not limited to, portable media players, cellulartelephones, pocket-sized personal computers, personal digital assistants(“PDAs”), desktop computers, laptop computers, and/or tablet computers.In some embodiments, client devices 102 may include control circuitry,storage, memory, communications circuitry, input and/or outputinterfaces as well as any of the additional features. Furthermore, oneor more components of client devices 102 may be combined or omitted. Forexample, storage and memory may be combined into one component withinclient device 102.

Server 104 may correspond to any number of servers capable offacilitating communications and/or service requests from various clientdevices 102. For example, client devices 102 may send and/or receivedata from server 104 across network 106. In some embodiments, server 104may include one or more similar components as that of client device 102,and the previous description may apply.

Network 106 may correspond to any network, combination of networks, ornetwork devices that may carry data communications. For example, network106 may be any one or any combination of local area networks (“LAN”),wide area networks (“WAN”), telephone networks, wireless networks,point-to-point networks, star networks, token ring networks, hubnetworks, and/or any other network configuration. Network 106 may alsosupport any number of protocols including, but not limited to, Wi-Fi(e.g., a 802.11 protocol), Bluetooth®, radio frequency systems (e.g.,900 MHz, 1.4 GHz, and 5.6 GHz communication systems), cellular networks(e.g., GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA,iDEN, LTE or any other suitable cellular network protocol), infrared,TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers),HTTP, BitTorrent, FTP, RTP, RTSP, SSH, Voice over IP (VOIP), any othercommunication protocol, or any combination thereof. In some embodiments,network 106 may provide wired communications paths for client devices102.

Although examples of embodiments may be described for a client-servermodel with a server servicing requests of a client application, personsof ordinary skill in the art will recognize that other models (e.g.,peer-to-peer) may be available for implementation with the describedembodiments. For example, a client application executed on a clientdevice may handle requests independently and/or in conjunction withserver 104.

FIG. 2 is an illustrative diagram of user interface in accordance withvarious embodiments. A user, such as a user of client device 102 of FIG.1 , may upload one or more files to a server (e.g., server 104 of FIG. 1) via user interface 200 in order to receive a price quote for producing3D objects or 3D molds. User interface 200 may, in some embodiments,include upload button 202, which may allow a user to upload files forreceipt at the server. For example, a user may upload one or morevisualization files that may provide data for rendering a visualizationof a two-dimensional and/or three-dimensional object. Various types offiles that may be uploaded to a server for visualization may include,but are not limited to, .asm files, STL files, IGES files, STEP files,Catia files, SolidWorks files, ProE files, 3D Studio files, and/or Rhinofiles. In some embodiments, the files to be uploaded may be digitalimages, such as a JPEG files, GIF files, PNG files, and/or PDF files. Insome embodiments, the uploaded file may correspond to a scan of animage. For example, a user may take a digital scan of an object, andupload the scanned image (e.g., in a PDF file) to the server.

In some embodiments, digital images may include metadata indicating ageographical location associated with the image. In this particularscenario, the quoted price may include production of a 3D object or a 3Dmold of the digital image as well as one or more 3D molds or objectscorresponding to any landmarks associated with the specific geographicallocation of the digital image. For example, a user may take a picture ofa friend or family member posing in front of the Golden Gate Bridge. Thedigital image may include metadata (e.g., geotagging) indicating thatthe picture was taken in a region of San Francisco, California proximateto the Golden Gate Bridge. Software provided on the server may recognizethat included with the uploaded digital image is a particulargeographical landmark (e.g., the Golden Gate Bridge) in addition to aperson. A price may be quoted for producing a 3D object including thefriend or family member pictured within the image as well as a properlyscaled 3D object of the Golden Gate Bridge. This functionality canprovide a wonderful memento of a family trip or excursion to aparticular location.

After a file has been selected for upload using user interface 200,status box 206 may be displayed therein to inform the user of the file'supload status. Status box 206 may, in some embodiments, include filename 208, which may correspond to the name of the file the price quotehas been requested for. For example, a user may upload a file of aspiral staircase, such as “spiral_staircase.stl”. In this particularscenario, file 208 may indicate that the uploaded file is an STL filebased on the file name's extension.

In some embodiments, status box 206 may include completion indicator210, which may indicate to the user the file's upload completionpercentage. For example, before a file has been uploaded, completionindicator 210 may read 0%. Continuing this example, after the file hascompletely uploaded, completion indicator 210 may read 100%, which mayindicate that the file has completely uploaded to the server.

In some embodiments, after a file has been uploaded to a server, such asserver 102 of FIG. 1 , the file may be stored within a user accountcreated on the server. In some embodiments, however, the file may onlyremain on the server temporarily to ensure that no file may be copied orviewed by unauthorized persons. For example, after a file has beenuploaded, and an object has been printed based on the file's design, theobject may be deleted from the server. However, persons of ordinaryskill in the art will recognize that any storage means may be used forthe uploaded files, and the aforementioned are merely exemplary.

In some embodiments, user interface 200 may also include quote button204. A user that has uploaded a file (e.g., spiral_staircase.stl) maypress quote button 204 after completion indicator 210 reads 100%, whichmay indicate receipt and validation of the uploaded file for price quotegeneration at the server.

After the server successfully receives the file and the user has pressedquote button 204, the server may convert the uploaded file into a 3D CADfile, if necessary. In some embodiments, a determination may be madefrom the uploaded file as to how many triangles fill the region of anobject described by the initial file, and a 3D file (e.g., 3D CAD file)may be generated based on the number of triangles determined to fill thevolume of the object. An STL file, for example, may describe a rawunstructured triangulated surface by a unit normal and vertices (e.g.,ordered by the right-hand rule) of the triangles using athree-dimensional Cartesian coordinate system. Triangulation generallyis related to subdivisions of geometric objects into triangles. Personsof ordinary skill in the art will recognize that any coordinate system(e.g., polar coordinate system, spherical coordinate system, cylindricalcoordinate system, curvilinear coordinate system, etc.) may be appliedto the surface, and the use of the Cartesian coordinate system is merelyexemplary. In some embodiments, a third-party application may be used todetermine the number of triangles for an object. Persons of ordinaryskill in the art will also recognize that any object or shape may beused to calculate the volume of the object within the uploaded file, andthe use of triangles is merely exemplary.

In some embodiments, a user may select an option to build a 3D object ormold from “the ground up”. In this scenario, instead of uploading aninitial file, the user may create an object or mold within userinterface 200. In some embodiments, the user may be provided with ablank CAD workspace on user interface 200, and may customize or createan object from scratch. In some embodiments, a user may open a blank CADworkspace from their own client device and build a 3D object or mold ontheir own personal client device. In this particular scenario, one ormore extensions may be built-in to the user's client device and/orworkspace, which may allow the user to send their created objects ormolds directly to user interface 200 instead of having to upload a fileto the server. For example, within a blank CAD workspace, a user maycreate a scale model car. The user, while still within the workspace,may select a button to export or get a quote for a cost of creatingtheir design. In some embodiments, the extension may prompt a user touser interface 200 directly upon activation.

FIG. 3 shows an illustrative client-side user interface in accordancewith various embodiments. User interface 300 may be presented to a userof a client device, such as client device 102, after a 3D CAD file hasbeen uploaded to a server (e.g., server 104), or converted from a non-3DCAD file. In some embodiments, user interface 300 may include thumbnailimage 302 located in a preview section 320. Thumbnail image 302 maycorrespond to 3D representation of an initially uploaded file. Thumbnailimage 302 may provide a user with a preliminary idea of whether or notthe file that the user has uploaded has been generated and/or convertedto the 3D CAD file as expected. If thumbnail image 302 is incorrect, theuser may choose to remove the initially uploaded file and begin theprocess again by pressing a “REMOVE” button to remove the file. Personsof ordinary skill in the art will recognize that a remove button aspreviously mentioned may be included at any location on user interface300 and may be capable of providing the user with the option to removethe initially uploaded file.

In some embodiments, the initially uploaded file's name and/or variousother pieces of information relating to the uploaded file may bedisplayed in file region 308. For example, the initially uploaded filemay be “spiral_staircase.stl,” which may be displayed within region 308allowing the user viewing user interface 300 to easily view the initialfile. The placement of file region 308 within user interface 300 ismerely illustrative and, in some embodiments, file region 308 may not bedisplayed at all.

User interface 300 may also include dimensions section 322. Dimensionssection 322 may present the size of the object from the initiallyuploaded file as well as the dimensional units that may be used tocalculate a price quote for making the object. In some embodiments,dimensions section 322 may include options 322 a and 322 b. Option 322 amay indicate that the dimensions are millimeters, whereas option 322 bmay indicate that the dimensions are inches. Persons of ordinary skillin the art will recognize that although dimensions section 322 showsonly two options, any number of dimensional options may be used. Forexample, various dimensional units may include, but are not limited to,inches, feet, yards, centimeters, millimeters, or meters. In someembodiments, the user may change the units to be used. Each of options322 a and 322 b may include a selectable button that may be pressed bythe user. For example, as shown in FIG. 3 , option 322 a indicatingmillimeters has been shaded in, may signify that the user has chosen toproceed in millimeters. Selection of option 322 a may cause userinterface 300 to display the length, width, and height of the objectfrom the initial file in units of millimeters. As another example, ifthe user selects option 322 b indicating inches, the length, width, andheight of the object may be shown in units of inches.

In some embodiments, an option may be included within user interface 300that allows the user to scale up or scale down the object described bythe uploaded file. For example, the uploaded image may, when convertedinto appropriate units, be smaller than the user initially desired. Inthis scenario, the user may select a slideable scale bar, or an increasesize option, to increase the size of the 3D object. In some embodiments,the user may select to change a size of one or more sections of the 3Dobject to be formed. For example, if the user has uploaded a filedescribing a 3D spaceman, the user may increase the size of thespaceman's legs, while keeping the torso or arms a same size. Persons ofordinary skill in the art will recognize that any object, or anycomponent of an object, may have its size manipulated.

User interface 300 may also include materials section 324. Materialssection 324 may, in some embodiments, include drop down menu 360. Dropdown menu 360 may include various materials available for the user toselect to have the 3D object made of. Various types of materials mayinclude, but are not limited to, acrylonitrile butadiene styrene (“ABS”)like materials, photopolymers, plastics, DM Shore, DM Grey, Full Cure,Durus, MED610, nylons, machined aluminum, machined steel, brass, orepoxy. In some embodiments, the user may submit a request to have anadditional material used. For example, the user may desire to have anobject created out of a material including a precious metal. The usermay submit the request to the server, and a price quote may then bebased, among other factors, on the additional material requested. A usermay also choose to use multiple materials by selecting multiplematerials option 346. Selection of multiple materials option 346 mayallow the user to create complex structures using multiple materialsand/or molds.

In some embodiments, the user may be provided an option for modifyingthe density of the object or mold to be used. For example, certainmaterials may have a higher cost associated therewith. Thus, a denserobject (e.g., a 3D ball), may be more costly to produce than others(e.g., a hollow 3D ball). Thus, the user may be able to modify thedensity to account for potential cost savings and/or structuralimprovements. As another example, some objects may require a largeamount of material to be used due to the material's density. Thus,larger amounts of material may account for larger amounts of time forproduction. In this particular scenario, the user may be able to modifythe density of the object to decrease the time needed for printing.

In some embodiments, the user may select a color for the 3D objectwithin user interface 300. For example, the user may desire the 3Dobject to be blue, and therefore may select an option to create 3Dobjects that are blue. In some embodiments, the user may select multiplecolors for the object and/or assign various colors to different portionsor sections of the 3D object. For example, if the user uploads a fileincluding a 3D image of a car, the user may select the body of the carto be a first color (e.g., red), while a second color may be selectedfor the wheels (e.g., black). In some embodiments, the use of a specificmaterial may be associated with a specific color. For example, if theuser selects a metallic material, the color of the created object may beof a metallic variety (e.g., silver, gold, bronze, etc.). In someembodiments, the user may upload a file having bitmap or voxel colorassignments. For example, the user may upload a file describing a 2Dobject or image. The file may have a bitmap color assigned to each pixelwithin the file associated the 2D image, and thus a color scheme for theobject to be printed may be used based on the bitmap assignments. Asanother example, the user may upload a file describing a 3D objecthaving a voxel color assignment for each three-dimensional voxel withinthe file.

In some embodiments, materials section 324 may also include process dropdown menu 365, which may correspond to various processes for creatingthe 3D object. For example, process drop down menu 365 may include anoption to use a “PolyJet” process or an “FDM” process. PolyJet may beused for high precision 3D printing using high resolution ink-jettechnology along with UV curable materials. FDM, or fused depositionmodeling, corresponds to a process where layers of material are formedfrom a material by moving a base structure. FDM may, in someembodiments, be used for large objects having lower resolution. Personsof ordinary skill in the art will recognize that the aforementionedexamples are merely illustrative, and any process may be used to formany 3D object.

In some embodiments, user interface 300 may include finish section 326.Finish section 326 may allow a user to choose a finish to be applied tothe 3D object. Finish section 326 may include finish selection region370 including finish options 326 a and 326 b. In one embodiment, finishoption 326 a may correspond to a matte finish, whereas finish option 326b may correspond to a glossy finish. Persons of ordinary skill in theart will recognize that although only two finish options are described,any number of finish options may be used.

In some embodiments, the user may also be able to select a texture forthe 3D object to have. For example, the user may select one or moreoptions that define an object having a smooth texture. In this scenario,the mold used to create the 3D object may include one or more inserts orbe created using different materials to provide the 3D object with asmooth texture. Various textures may include, but are not limited to,smooth, coarse, rough, spikey, bumpy, or any other texture, or anycombination thereof. In some embodiments, the user may select an optionto have an additional material included on the created object to providethe required texture. For example, after a 3D object has been created,the object may be covered with a fabric or material having the requiredtexture. Persons of ordinary skill in the art will recognize that anytexture may be used, and any means to create the texture for the objectmay be performed, and the aforementioned is merely exemplary.

In some embodiments, user interface 300 may include quantity section328. A user may input the number of 3D objects to be ordered intoquantity section 328. For example, as shown in quantity section box 380,the user may select four (4) spiral staircases to be created. In otherembodiments, quantity section 328 may include a default option thatdefaults the number of objects to be created to one (1) 3D object.

In some embodiments, user interface 300 may include notes section 330.Notes section 330 may allow a user to input any special instructions orpertinent information regarding the production of the 3D object. Forexample, a user may include a request to use a specialized material notfound within material drop down menu 360 within notes section 330. Insome embodiments, notes section 330 may be left blank, which mayindicate that the user may not have any special comments, instruction,and/or notes.

In some embodiments, user interface 300 may include subtotal section340, which may present a quote of the price to form one 3D object. Forexample, as shown in FIG. 3 , a spiral staircase with millimeters option322 a selected, ABS material selected in materials section 324, andglossy finish option 326 b selected, may correspond to subtotal value348 of $20.00. In some embodiments, modifications to one or more optionsmay increase or decrease subtotal value 348. For example, selection ofinches option 322 b may increase subtotal value 348. The value listed inquantity selection box 380 may be used in conjunction with subtotalvalue 348 to determine total cost 344. For example, if a user selectsfour (4) 3D objects having all of the previously mentioned selections,total cost 344 may correspond $80.00.

In some embodiments, user interface 300 may also include drop down menuscapable of augmenting all the parts of the uploaded file or files. Forexample, drop down menus may be included such as units drop down menu312, materials drop down menu 314, and finish drop down menu 316. Insome embodiments, menus 312, 314, and 316 may have substantially similarfunctions to that described previously regarding dimensions section 322,materials section 324, and finish section 326, respectively. However, ifa user selects multiple materials option 346, for example, drop downmenus 312 and 316 may be used to change the characteristics of acomposite material.

As an illustrative example, a user may select upload additional filesbutton 304 and be presented with a user interface substantially similarto user interface 200 of FIG. 2 . The user may then upload one or moreadditional files including 3D objects to be created. If this option isperformed, an additional row related to the additionally uploaded filemay be presented. Continuing with this example, drop down menus 312,314, and 316 may be used to change the units, material, and/or finish ofeach of the objects included within user interface 300.

In some embodiments, user interface 300 may also include download quotebutton 306 and review quote button 307. Download quote button 306 mayallow a user to download a copy of the quote as displayed on userinterface 300. For example, if the user wants to email or print a copyof the quote, the user may select button 306 to retrieve a copy of thequote for their records and/or to be shared with others. Review quote307 may be used if an individual would like to continue with thepurchasing process and be provided with a comprehensive review of theoptions that have been selected.

In some embodiments, user interface 300 may include an option todirectly print the 3D object. For example, instead of having to installa printer driver, user interface 300 may itself act as the printerdriver. In this scenario, the user may directly print their 3D object ormold from within user interface 300. This may be extremely beneficial toa user proximate to the printer because they may be able to see thecreated object quickly, and make adjustments and refinements based onthe created object. In some embodiments, selected parts of the 3D imagemay be directly printed independent of one another. For example, a usermay select a first printer to create part of the 3D object while asecond printer may be used to create another part of the object.

In some embodiments, user interface 300 may also include an indicatordisplaying an estimate time for the price quote to be generated and/orthe object to be created. This option may allow the user to determinewhether the time for the build is too long, and if any modifications maybe performed to decrease the build time. In some embodiments, the pricequote may have an associated build time. For example, an extremelycomplex design may have to be reviewed by one or more individuals todetermine a price quote for the object, and therefore may take a longertime to generate.

In some embodiments, user interface 300 may be presented to a user on athird party website or application. For example, various brands orcompanies may harness the features of user interface 300 within theirown website. A consumer may then purchase or obtain a price quote on thewebsite, which may be related back to the server as a point of sale orcreation site. For example, a shoe company may provide a user interfaceon their website that may be substantially similar to user interface300. A user logging into the shoe company's website may decide to add acustomized 3D logo to their shoe purchase. In this particular scenario,the user may be provided with an interface substantially similar to userinterface 300, which may allow the user to design their logo. After theuser has completed the design, the company website may transmit thedesign features to the server for a price quote to be generated. In someembodiments, the point of sale of the image may also occur on thecompany's website with the creation of the logo occurring externally. Insome embodiments, integrated business management software may be linkedto user interface 300. The software may, for example, allow the companyto manage multiple facets of 3D printing and price quoting from onecentralized platform. For example, file data created on the company'swebsite may be transmitted to the server after the price quote has beengenerated along with payment information. In some embodiments, this maycreate a work order that may be linked to the company so that a user maystill only communicate or interact with one primary website (e.g., theshoe company's website).

FIG. 4 shows an illustrative client-side user interface in accordancevarious some embodiments. In some embodiments, user interface 400 may bepresented to a user after pressing a review quote button (e.g., reviewquote button 307 of FIG. 3 ). User interface 400 may include thumbnailimage 402, download quote button 406, preview section 420, dimensionssection 422, materials section 424, finish section 426, quantity section428, notes section 430, subtotal section 440, subtotal value 448, andtotal section 444, which may, in some embodiments, be substantiallysimilar to preview image 302, download quote button 306, preview section320, dimensions section 322, materials section 324, finish section 326,quantity section 328, notes section 330, subtotal section 340, subtotalvalue 348, and total section 344 of FIG. 3 with the exception that thevarious fields of user interface 400 may not be editable by the user.

In some embodiments, user interface 400 may include item number section408 and part section 410. Item number section 408 may correspond to apart number defined by a manufacturer. Part section 410 may correspondto a file name initially used to generate the quote (e.g.,spiral_staircase.stl). User interface 400 may also include materialselection region 460, finish selection region 470, and quantityselection region 480. Regions 460, 470, and 480 may, in someembodiments, be substantially similar to sections 360, 370, and 380 ofFIG. 3 , and the previous description may apply. In some embodiments,regions 460, 470, and 480 may show finalized selections of thecorresponding regions for a user to review.

In some embodiments, user interface 400 may include modify parts button404 and proceed to checkout button 407. Modify parts button 404 mayallow a user to modify one or more aspects of the order. For example, auser may realize, upon reviewing user interface 400, that the createdobject should have a matte finish instead of a glossy finish. Byselecting modify parts button 404, a user may be prompted to a userinterface substantially similar to user interface 300 of FIG. 3 ,thereby allowing the user make one or more appropriate changes. After auser is satisfied with their selections of parts and options based onuser interface 400, the user may complete the order and/or remit paymentby selecting proceed to checkout button 407.

In some embodiments, a user may be able to leave feedback regardingtheir experience within user interface 400. For example, the user mayhave a suggestion for an improvement of a specific tool or processwithin user interface 400. The user may be able to submit theirsuggestion for future functionality improvement. In some embodiments,the server may be able to track specific characteristics or selectionsby a user on user interface 400, and use these characteristics orselections to help the user's experience in future situations. Forexample, if a user requests a specialty material for their 3D object,the server may store that material in a database associated with theuser. Thus, if the user returns to upload another file or to createanother object, the previously requested material may be available.

In some embodiments, user interface 400 may include one or more deliveryoptions for obtaining the 3D object or mold. For example, an additionalregion may be placed within user interface 400 that allows a user toselect to have the object shipped overnight, priority, and/or ground.Each shipping option may also have an associated cost that may befactored into total cost 444. As another example, the user may also beallowed to select a “pick-up” option. This may allow the user to go tothe location of the printing and pick up their purchase without havingto pay (or wait) for shipping. Persons of ordinary skill in the art willrecognize that any delivery option or time period may be used. Forexample, a user may select a particular date or range of dates to havetheir object delivered by. In some embodiments, the user may also beable to purchase or checkout with a purchase order. Upon approval fromthe server, the user may be able to complete the checkout for theirobject using their purchase order. However, persons of ordinary skill inthe art will recognize that any payment method may be used including,but not limited to, credit card, internet payment, barter, check, and/orcash.

FIG. 5 shows another illustrative client-side user interface inaccordance various some embodiments. User interface 500 may includethumbnail image 502, modify parts button 504, proceed to checkout button507, material selection region 560, finish selection region 570,quantity selection region 580, total section 544, and subtotal value548, which may, in some embodiments, be substantially similar tothumbnail image 402, modify parts button 404, proceed to checkout button407, material selection region 460, finish selection region 470,quantity selection region 480, total section 444, and subtotal value 448of FIG. 4 , and the previous description may apply.

In some embodiments, user interface 500 may be used as a cloud basedproject management solution interface. For example, a user may upload afile to user interface 500 (e.g., file 410), which may be broadcast toone or more additional users accessing the server. In this particularscenario, participants capable of accessing the sever may be able toshare files, projects, and/or relevant project data with other users toobtain feedback, advice, suggestions, and/or comments. In someembodiments, comment 506 may be presented on user interface 500. Userinterface 500 may display comment 506 regarding a particular scenariowhere a user is allowing other users within a collaboration space toview their file, materials, and other relevant parameters to obtainfeedback. For example, an additional user accessing a sharedcollaboration space may suggest to the user uploading the file, depictedby thumbnail image 502, that if the intended material is ABS, thedimensions along the z-axis may be more suitable if increased to 10 mm.This may be particularly useful for novice users as they may learn thatcertain structures, materials, and/or finishes, for example, may haveoptimal setting. Thus, the process of creating 3D object may become amore collaborative effort, harnessing the skills of a plurality ofindividuals.

User interface 500 may also include polling region 512. Polling region512 may be used by a user, in some embodiments, to gain insight or seekopinions of collaborators for various parameters of their design. Forexample, a user may be unsure whether or not their 3D object should havea glossy finish or a matte finish. The user may poll the collaborationof users accessing the server to see what the collaborators think is asuitable choice. In some embodiments, polling region 512 may includevote counts 514 and 516. Continuing with the previous example, votecount 514 may indicate to a user the amount of collaborators who havevoted for a glossy finish to be used, whereas vote count 516 mayindicate an amount of collaborators who have voted for a matte finish.In some embodiments, the polling region may be created within, or linkedto, one or more social media networks. For example, instead of pollingthe collaboration, the user may poll their friends or contacts withintheir social media network account.

In some embodiments, user interface 500 may also serve as an onlinemarketplace where users may sell their designs or objects to others. Forexample, a user accessing the marketplace may view thumbnail image 502and ask to purchase a version of versions of the 3D object, as shown bycomment 508. The user may then submit purchasing information eitherdirectly to the design holder, or to the server as a third-partymediator. As another example, a user accessing the marketplace may viewthumbnail image 502 and determine that they would like to purchase thedesign file used to create the image. In some embodiments, themarketplace may be used to help the user obtain potential investors fortheir product. For example, potential investors may view user interface500 and determine if they would like to invest money in the user'sdesign. In some embodiments, various users may trade or barter 3Dobjects or 3D designs instead of purchasing the objects or designs froma user. For example, a user may be able to ask another user whether ornot they can trade them a 3D spiral staircase file for a 3D house file.This may allow users to work together to create elaborate 3D displayswithout the need to solely create the entire display by themselves.

In some embodiments, user interface 500 may also include printerselection comment 510. Printer selection comment 510 may help the userperform a variety of printing tasks. For example, comment 510 may allowthe user to select one or more printers to print their 3D object. Asanother example, comment 510 may allow the user to see which printersare currently in use so that the user may select an open printer or waitfor a desired printer to become available.

Each printer may be accessed by a user remotely across a network, suchas network 106. In some embodiments, the printers may be owned bymultiple entities, similar to a time share. In this particular scenario,multiple entities may have access to the printer at various times. Forexample, a printer may be owned by two companies, company A and companyB. Company A may have access to the printer on every even numbered day,whereas company B may have access to the printer on every odd numberedday. In some embodiments, user interface 500 may include an option formanaging the time share properties of the printer. For example, anotification may be displayed within user interface 500 indicating thecurrent date, and whether company A or company B has access to theprinter. In some embodiments, a calendar option may be provided withinuser interface 500 allowing individuals to reserve time with a printerand/or select the dates when they would be able to use the printer. Forexample, company A may seek to reserve the printer for the week of May1-May 7. A calendar option displayed within user interface 500 may bedisplayed allowing company A to “block off” that particular week so thatonly company A may use the printer during that time period.

FIG. 6 is an illustrative diagram of further still another client-sideuser interface in accordance with various embodiments. User interface600 may include first printer status report 602 and second printerstatus report 604. In some embodiments, users may review the status ofeach printer and/or the status of their current print job via statusreports 602 and 604. Each status report may include the correspondingprinter's name. For example, printer name 602 a, “PRINTER 1”, maycorrespond to status report 602, whereas printer name 602 b, “PRINTER2”, may correspond to status report 604. Persons of ordinary skill inthe art will recognize that although only two reports are displayedcorresponding to two printers, any number of status reportscorresponding to any number of printers may be displayed. It should alsobe understood that the term “printer” is used herein broadly to define awide variety of printers including, but not limited to, inkjet printers,fused deposition modeling printers, granular material binding printers,photopolymerization printers, and/or mask image projection basedstereolithography printers.

In some embodiments, printer status reports 602 and/or 604 may allow auser to monitor the various printers in use as well as datacorresponding to a build of each 3D object. For example, status reports602 and 604 may respectively include temperature readings 602 b and 604b. Temperature readings 602 b and 604 b may allow a user to know thetemperature of the printer, the temperature of the object or mold beingformed, the temperature of the environment where the printer is located,or any other temperature reading, or any combination thereof. Statusreports 602 and 604 may also include print statuses 602 c and 604 c,respectively. Print statuses 602 c and 604 c may allow a user to know acurrent status of the print job for a particular printer. For example, aprinter may currently be printing, queued to print, asleep, jammed, orthe printer may have an error causing a warning or alarm to bedisplayed.

In some embodiments, status reports 602 and 604 may include layerinspection information allowing the user to know the status of eachlayer of the printing as it occurs. For example, printer layerindicators 602 d and 604 d may indicate to the user which layer of theprint job is currently being printed. Total layer indicators 602 e and604 e may also be included within reports 602 and 604, respectively,which may inform the user of a total number of layers included withinthe current print job.

In some embodiments, as each layer is printed a detailed analysis of thelayer may be performed by software resident on the server and/orprinter, and if any issue is detected it may be displayed by indicators602 f and 604 f, respectively. The analysis may look for potentialissues that may have occurred during the latest layer's printing. Forexample, the analysis may look to make sure all the material hassuccessfully been placed, the material has hardened to a suitably level,and/or perform any other analysis tool, or any combination thereof. Insome embodiments, a video display of each print job may be presentedwithin status reports 602 and 604 allowing the user to inspect the printjob as each layer is printed. This may allow the user to detect anyissues while stationed remotely from the printer. As an illustrativeexample, report 604 may display indicator 604 f, indicating to the userthat there may be a clog detected within the printing of layer 4 onprinter 2. In some embodiments, reports 602 and may also includecompletion percentage indicators 602 g and 604 g, respectively.

FIG. 7 is a flowchart of an illustrative process for providing a pricequote for a 3D object in accordance with various embodiments. Process700 may begin at step 702. At step 702, an initial file describing a 3Dobject to be formed may be received at a server (e.g., server 104 ofFIG. 1 ). In some embodiments, a user may upload a file describing anobject to the server using a client device (e.g., client device 102 ofFIG. 1 ). A user may upload one or more file types, including, but notlimited to, STL files, IGES files, STEP files, Catia files, Solid Worksfiles, ProE files, 3D Studio files, and/or Rhino files. In someembodiments, a user may upload JPEG or GIF files, which may includegeographical metadata. Persons of ordinary skill in the art willrecognize that any file type may be used, and the previously listed filetypes are merely exemplary. In some embodiments, a user may upload oneor more files that describe the 3D printed molds used to form 3D objectsand/or the 3D object from which 3D printed molds are to be created.

At optional step 704, the initial file may be converted to a 3D CADfile, if necessary, after the initial file has been received at theserver. In some embodiments, converting the initial file to a 3D CADfile may include determining a number of triangles capable of fittinginto the object's volume. In some embodiments, converting the initialfile to a 3D CAD file may include determining a density of the objectdepicted by the 3D file. In some embodiments, the user may upload a 3DCAD file at step 702, and step 704 may be skipped altogether. In someembodiments, the initial file may be converted into another 3D file typeinstead of a 3D CAD file. In some embodiments, the conversion of theinitial file to a 3D CAD file or other 3D file may be performed usingone or more algorithms resident on the server.

At step 706, a selection of parameters associated with the 3D object tobe formed may be received. For example, a user may select the units tobe used to define dimensions of the object, the material or materialsthat the object may be formed from, the finish of the object, and/or thequantity of objects to be created. In some embodiments, a user mayupload more than one initial file. In this particular scenario, the usermay select the units, materials, finish, and quantity corresponding tothe one or more of the 3D objects to be made from the one or moreuploaded files.

At step 708, a price quote for the at least one 3D object may begenerated. In some embodiments, the price quote may be based on theparameters selected at step 706 and/or any other suitable factors. Forexample, software provided on the server may be used to calculate anapproximate density, size, and/or complexity of the object to be madeand, based on the calculations, generate a price quote. In someembodiments, certain materials may have a greater price per density thanothers. In some embodiments, the finish selected may affect thegenerated price quote. In some embodiments, the quantity of molds to bemade, or needed to form the object, may affect the generated pricequote. In some further embodiments, the complexity of the object to beformed may affect the generated price. For example, a complex objecthaving small or extremely detailed portions may require multiple moldsin order to be created. This may have a higher cost to produce than asimple object due, at least in part, to the amount of molds and/ormaterials needed for production.

At step 710, a checkout option may be provided to the user to purchasethe object or objects (e.g., using user interface 400 of FIG. 4 ). Forexample, a user may be capable of providing payment and/or billinginformation, shipping information, or any other additional information.In some embodiments, the checkout option may allow the user to reviewthe generated price quote and determine whether or not to proceed withthe purchase order. In some embodiments, the ordering of the steps maybe rearranged (e.g., step 706 could be before step 702 and step 704).

In some embodiments, after a user purchases the mold or object, dataassociated with the mold or object may be stored in a database on theserver. The database may be used to help continually improve and refineprocess 700 to generate quotes. In some embodiments, data collected frominitially received files, complexity of molds created, costs associatedwith complexity, and/or other data generated to create a quote may beused to train a classifier. The classifier may learn from the data andbe trained to indicate where complexities exist with thethree-dimensional object that may affect the cost and/or the associatedcosts for the complexities. Any machine learning algorithm may be usedto classify costs related to creation of three-dimensional objects andcorresponding molds, including, but not limited to, nearest neighbors,random forest, decision tree, association rule learning, artificialneural networks, genetic programming, inductive logic, support vectormachines, clustering, Bayesian networks, reinforcement learning,representation learning, similarity learning, dictionary learning,and/or any other machine learning algorithm, or any combination thereof.In some embodiments, the design of the initially uploaded object may bereviewable by the server and/or additional users to determine potentialcomplexities within the design of the object from the initial file. Forexample, the initial file uploaded to the server, which may be reviewedby members of a forum of experts to determine potential improvements forthe design of the object. In some embodiments, the database may be usedto store information pertaining to the user and the objects selected forcheckout for future reference.

In some embodiments, after parameters are selected and a price quote hasbeen generated, a prompt may be displayed on the user interface toselect one or more additional files to upload to the server. If the userdoes have any additional files to upload, the user may be prompted backto step 704. If not, the user may continue to checkout at step 710.

In some embodiments, after a user selects the parameters and a pricequote is generated, the user may determine to remove the initial fileand begin the process again by selecting a remove file button. If theuser selects the remove file option, the user may be prompted back tostep 702. If not, and the user is satisfied with the generated pricequote, the user may be prompted to the checkout option at step 710.

FIG. 8 is a flowchart of an illustrative process for generating a pricequote in accordance with various embodiments. Process 800 may begin atstep 802. At step 802, dimensionless units associated with an initiallyuploaded file may be converted to measurable units. For example, a usermay upload an STL file (e.g., spiral_staircase.stl) to a server, such asserver 104 of FIG. 1 . The object described by the STL file may, in someembodiments, have dimensionless units. In this scenario, thedimensionless units may be converted into measurable units (e.g.,inches, millimeters, etc.) in order to produce a physical object.

At step 804, a length of a first axis of an object to be molded may bedetermined. For example, an uploaded file that has been converted to a3D file may have a first axis' length (e.g., a z-axis) determined. Insome embodiments, the server may determine a length of a second or thirdaxis (e.g., an x or y-axes) instead of the first axis.

At step 806, the server may determine a projected area for a supportmold structure. A support mold structure may correspond to any structurethat may be used to provide support for the mold. For example, whenforming a mold of an object, the size of the mold may be larger than theobject. In some embodiments, the support structure may be the outersurface area used for the mold.

At step 808, a volume of the object to be molded and a volume of thesupport mold structure may be determined. In some embodiments, thedetermined length of the first axis may be used to determine the volumeof the object or support mold structure. For example, if the object is aball, the first axis may be used to determine the volume of the ball,and a corresponding support structure may be determined.

At step 810, a determination may be made as to whether the volume of thesupport mold structure is greater than the volume of the object to bemolded by a threshold value. For example, if the volume of the supportmold structure is ten (10) times greater than the volume of the objectto be molded, a certain pricing scheme may be used. If not, analternative pricing scheme may be used. The threshold may be any valuedetermine by the server and/or by the user. The threshold value may alsobe manipulated based on any number of factors including the materials tobe used and/or the quantity of objects to be created, for example.Persons of ordinary skill in the art will recognize that any thresholdvalue may be used, and the use of ten (10) is merely exemplary. Forexample, the threshold value may range from two (2) to fifty (50) timesgreater than the volume of the object to molded.

If, at step 810, the volume of the support mold structure is determinedto be greater than the volume of the mold by the threshold value, ormore than the threshold value, then process 800 may proceed to step 814where a first pricing formula may be used. If, however, at step 810, thevolume of the support mold structure is determined to be less than thevolume of the object to be molded by the threshold value, then process800 may proceed to step 812 where a second pricing formula may be used.In some embodiments, the first and second pricing formulas may besubstantially similar or substantially different. Persons of ordinaryskill in the art will recognize that any pricing formula may be used.For example, if the object uses a certain material (e.g., ABS), then acertain formula may be used indicating a particular pricing scheme. Insome embodiments, the use of millimeters or inches may cause one or moredifferent pricing schemes to be used. After either the first pricingformula or second pricing formula is used at steps 814 and 812,respectively, process 800 may proceed to step 816 where a price quotemay be generated.

FIG. 9 is a flowchart of an illustrative process for providing a pricequote for a 3D object or a 3D mold in accordance with variousembodiments. In some embodiments, a user may provide an initial file orfiles to a server and procure a price quote for generating either a 3Dobject or a 3D mold described by the initial file or files.

Process 900 may begin at step 902. At step 902, an initial filedescribing a 3D object or a 3D printed mold may be received at a server(e.g., server 104 of FIG. 1 ). In some embodiments, a user may upload afile to the server using a client device (e.g., client device 102 ofFIG. 1 ). A user may upload one or more file types including, but notlimited to, STL files, IGES files, STEP files, Catia files, SolidWorksfiles, ProE files, 3D Studio files, and/or Rhino files, for example. Insome embodiments, a user may upload JPEG or GIF files, which may alsoinclude geographical metadata. Persons of ordinary skill in the art willrecognize that any file type may be used, and the aforementioned aremerely exemplary.

At step 904, after the initial file has been uploaded, a prompt may bedisplayed within a user interface requesting a definition of what theuser would like to procure. For example, the prompt may ask whether theinitial file corresponds to a 3D printed mold or for a 3D object.

If, at step 904, a 3D printed mold is desired, then process 900 mayproceed to step 906. At step 906, a selection of one or more parametersassociated with the 3D mold to be formed may be received. For example, auser may select units used to define dimensions of the object or objectsto be formed by the mold, the material or materials the mold is to beformed from, the finish of the object formed by the mold, and/or thequantity of molds to be created.

In some embodiments, the server and/or the user may determine thecomplexity of the 3D printed mold and base the quoted price on thecomplexity. A multitude of factors may contribute to the complexity ofthe 3D printed mold and thus the price quoted. For example, use of morethan one mold may correspond to an increase in price quoted becauseadditional molds may need to be printed. In this scenario, thedimensions, materials, and finish of the object to be formed by the 3Dprinted mold may be determined at step 906.

Another factor that may contribute to the complexity of the 3D printedmold may be the intricacy of the actual mold and/or the design of theobject formed by the mold. For example, a 3D printed object having avery thin hollow region (e.g., a ring) may be more complex than asphere. Additionally, if the object to be formed by the mold has finedetails, additional molds may be required to form the base structure andthen the finer details.

Still another factor that may contribute to the complexity of 3D printedmolds may be the materials used to form the mold and/or the object.Different objects to be formed may require molds created using differentmaterials. For example, the 3D object may require the 3D printed mold tohave additional materials used for support structures. A structure thatmay have a very thin region (e.g., a ring) may require an additionalmaterial with high strength to ensure that deformation of the thinregion does not occur. As another example, the thermal properties ofspecific materials may affect the complexity of the mold.

Returning to step 904, if a 3D object is to be purchased, then process900 may proceed to step 908. At step 908, a selection of parametersassociated with the 3D object to be formed may be received. In someembodiments, step 908 of process 900 may be substantially similar tostep 706 of process 700, and the previous description of the latter mayapply to the former.

After a selection of parameters associated with the one or more objectsor the one or more molds has been received, process 900 may then proceedto step 910. At step 910, the server may generate a price quote for theone or more 3D objects or the one or more 3D molds. In some embodiments,the price quote may be based on the parameters selected at step 906,step 908, and/or any other suitable factors. In some embodiments, step908 may be substantially similar to step 708 of process 700 with theexception that the price quote may be for the one or more objects or theone or more molds.

FIG. 10A is an illustrative diagram of a client-side user interface forgeometry fixing capabilities in accordance with various embodiments.User interface 1000 may be presented on a display screen of a clientdevice. In some embodiments, a user may upload to a file describing a 3Dobject, such as 3D object 1002, to a server using their client device.For example, a user seeking to obtain a price quote or purchase a 3Dobject printed using 3D printing techniques may upload a file describingobject 1002 to a server, such as server 104 of FIG. 1 .

In some embodiments, the uploaded file may be analyzed to determinewhether or not there are any holes or gaps in the object. For example,object 1002 may have hole 1004. In this scenario, the object would beprinted with hole 1004 included. If this is not an intentional feature,then the design may produce incorrect objects at the user's expense.

FIG. 10B is another illustrative diagram of a client-side user interfacefor geometry fixing capabilities in accordance with various embodiments.User interface 1050 may, in some embodiments, correspond to a userinterface displayed on a client device after one or more algorithms arerun on the uploaded file. The one or more algorithms may be able todetect hole 1004 within object 1002 and create a fix for the hole. Insome embodiments, the one or more algorithms may ask the user whether ornot to apply the fix to hole 1004 prior to its application.

In some embodiments, the one or more algorithms may use the uploadedfile to determine the dimensions and structure of the 3D object to becreated by the file. After the dimensions and structure of the objecthave been determined, the algorithms may use mathematics to create amesh around the 3D object. For example, mesh triangles 1006 a-d may beformed around hole 1004. In some embodiments, the created mesh may bevirtual, and may be created on the server. Mesh triangles 1006 a-d maybe capable of covering the region of object 1002 including hole 1004,thus removing hole 1004 with mesh triangles 1006. Persons of ordinaryskill in the art will recognize that any shape may be used to heal theholes included within an image, and the use of triangles is merelyexemplary.

FIG. 11 is a flowchart of an illustrative process for fixing geometriesof uploaded files in accordance with various embodiments. Process 1100may begin at step 1102. At step 1102, a file describing a 3D object maybe uploaded from a client device to a server. For example, a filedescribing object 1002 may be uploaded to server 104 of FIG. 1 .

At step 1104, the object described by the file may be analyzed. In someembodiments, the file may be analyzed by one or more algorithms residenton the server that searches for holes or gaps within the object. Forexample, the algorithm may form the object from the file's descriptionor specifications, and determine whether or not there are any gapswithin the object.

At step 1106, a determination may be made as to whether or not there areany holes within the object. For example, if the uploaded and analyzedfile describes object 1002 therein, the one or more algorithms maydetermine that object 1002 includes hole 1004. In some embodiments, if ahole is determined to exist within the object, the user may be promptedto answer whether or not the hole is intentional or unintentional. Forexample, if the file describes a cylinder, the hole may be intentional.Therefore, the user may not wish to fix this hole. However, if the useraccidentally created a file describing an object without a particularregion, such as the region described by hole 1004, then the user mayindicate that the hole is unintentional and therefore may need to becorrected.

If, at step 1106, there are no holes determined to be included withinthe object, or there are no unintentional holes, then process 1100 mayproceed to step 1112. At step 1112, a price quote for the objectdescribed by the uploaded file may be generated. In some embodiments,the object may printed after the quote is generated. For example, theuser may be prompted to a user interface similar to user interface 300of FIG. 3 . In this scenario, the user may proceed with attempting topurchase the object having any number of parameters selected, aspreviously described with relation to FIG. 3 .

If, at step 1106, there are one or more holes determined to be withinthe object, the process 1100 may proceed to step 1108. At step 1108, amesh may be created around the object to cover the hole. For example,object 1002 may include hole 1004, and a mesh, such as mesh triangles1006 a-d, may be virtually formed around object 1002 to cover hole 1004.In some embodiments, one or more algorithms resident on the server maybe used to determine the design or specifications of the object createdby the uploaded file. These parameters may be used to form the meshsurrounding the object used to patch the hole. In some embodiments, thecreated mesh may cover only the hole and not the entire object. Forexample, object 1002 may only include mesh triangles 1006 a-d coveringhole 1004.

At step 1110, the holes may be patched with the mesh. For example meshtriangles 1006 a-d of FIG. 10B may be used to patch hole 1004. Personsof ordinary skill in the art will recognize that any suitable method oralgorithm may be used to patch a detected hole, and the aforementionedis merely exemplary. For example, instead of creating a mesh, the holemay be reconfigured to describe a positive space having similar materialand textural properties of the rest of the object. After the hole hasbeen patched or remedied, process 1100 may proceed to step 1112(described above).

FIGS. 12A and 12B are illustrative diagrams of client-side userinterfaces used for geometry customization in accordance with variousembodiments. User interface 1200 may include object 1202 displayedthereon. Object 1202 may correspond to a 3D object described by a fileuploaded by a user to a server. For example, the user may upload a filedescribing a can that they intend to have a mold made for. In someembodiments, the user may desire to add geometry customization elementsto the object. For example, the user may want to imprint a word orphrase onto each can made. User interface 1250 may display object 1202having customized element 1204 included therein. Customized element 1204may correspond to any element or feature placed or printed onto anyobject to be created, including, but not limited to, the user's name, apersonalized statement, a patent number corresponding to the object, arecycling logo (if the material used to form the object is a recyclablematerial), or any other element, or any combination thereof.

In some embodiments, each part created may include a separate serialnumber or part number used to help identify a complex or multi-partobject. The serial number or part number may be formed as a customizedelement and formed on each part. For example, a mold of the serialnumber for the part may be created along with the mold of the part sothat each mold prints the desired number onto a 3D object printed usingthe mold. In some embodiments, previously created objects may have theirpart numbers stored on the server so that objects having the samenumbers (e.g., same components) may be reproduced at a later time. Forexample, if a user is creating a 3D car, the front wheels may include afirst part number, whereas the rear wheels may include a second partnumber. Both the first part number and the second part number may bestored on the server so that both may be reproduced at a later time andused in conjunction with previously created parts of the same construct(e.g., car).

FIG. 13 is a flowchart of an illustrative process for customizinggeometry in accordance with various embodiments. Process 1300 may beginat step 1302. At step 1302, a file may be received at a server. In someembodiments, the file may be uploaded to a server from a client device,such as client device 102 of FIG. 1 . In some embodiments, the file mayinclude data or instructions for creating a 3D object. For example, theuploaded file may correspond to a 3D CAD file. In some embodiments, auser accessing a 3D price quoting or printing service may create thefile on the server. For example, a user may be able to create the 3Dobject from the ground up, creating each layer and portion of the 3Dobject while accessing the server.

At step 1304, a 3D image of a 3D object may be generated from the file.For example, the file may include data corresponding to creating aspherical can (e.g., object 1202). In some embodiments, the object maybe virtually created on the server, and a 3D image of the object may betransmitted to the client device so that the user may visualize theobject.

At step 1306, a determination may be made of whether or notcustomization elements should be added. If, at step 1306, the userdecides to add a customized element, process 1300 may proceed to step1308. At step 1308, a determination may be made about what customizationelement or elements should be added to the 3D object. For example, auser may desire to include a recycling logo on the object that will beproduced, and therefore may request that a recycling logo be added tothe 3D object. In some embodiments, adding a customization element tothe object to be produced may correspond to the server adding data tothe file to create a new version of the file including the originalobject data as well as the customization element(s). The new data maycreate the customization element within the mold of the object so thateach object produced by the mold includes the customization element.

At step 1310, a new file corresponding to the 3D object created havingthe added geometry element, may be generated and displayed on the user'sclient device. For example, user interface 1250 of FIG. 12B may includeobject 1202 as well as customization feature 1204 displayed as an imageon the user interface. In some embodiments, the user may be capable offurther modifying the new object by adding additional customizationelements. In this particular scenario, process 1300 may return to step1308, where additional elements may be added.

At step 1312, a price quote for creating one or more 3D objects based onthe generated new 3D image including the customization element(s) may begenerated. For example, after the user receives the generated new 3Dfile at step 1310, they may be prompted to a user interface (e.g., userinterface 300 of FIG. 3 ) to determine materials to be used to createthe object, finishes for the object, and/or quantity of objects to bemade. In some embodiments, the generated new 3D image may create a newversion of the originally uploaded file. The new file may be uploadedautomatically to a 3D price quoting system at step 1312 to allow theuser to determine the costs associated with creating their 3D object. Insome embodiments, the user may also receive a price quote for creatingthe original object as well as creating the new object having thecustomized element(s). In this scenario, the user may be able to decidewhether it is fiscally appropriate to purchase 3D objects, or 3D moldsfor creating 3D objects, that include the customized element(s). In someembodiments, if no customization element is to be added at step 1306,then process 1300 may to step 1312.

In some embodiments, after generation of the price quote, the 3D objectmay be purchased and/or printed directly. For example, within userinterface 300, a button may be included allowing a user to directlyprint one or more 3D objects based on their design. This may allow theuser to view what the object was to look like prior to placing apurchase order.

FIG. 14 is an illustrative diagram of a client-side user interface fordesign optimization capabilities in accordance with various embodiments.User interface 1400 may include object 1402 displayed on a clientdevice's display screen. In some embodiments, one or more algorithmsresident on a server (e.g., server 104 of FIG. 1 ), may analyze the fileassociated with object 1402 to look for potential areas where the designcould be optimized. For example, object 1402 may be designed to includeprotrusion 1406. Protrusion 1406 may protrude away from object 1402 viathin beveled wall 1404. In some embodiments, analysis of this 3D objectmay determine that a thickness of wall 1404 may cause structuralweakness in protrusion 1406, which may make it prone breakage.

In some embodiments, in response to determining potential trouble pointswithin an object's design, one or more suggestions may be presented tothe user. The suggestions may include various ways in which the designmay be altered to improve stability and/or function. For example, asuggestion to improve the stability of wall 1404 may be to increase thewidth of wall 1404. As another example, the one or more algorithms mayask the user if they would like to implement a structural supportelement, such as a rod. However, in this scenario, additional supportstructures may increase the cost of production, and this factor may bepresented to the user as well to aid in making the best possibledecision.

FIG. 15 is a flowchart of an illustrative process for optimizing designsin accordance with various embodiments. Process 1500 may begin at step1502. At step 1502, a file may be uploaded to a server from a clientdevice. In some embodiments, step 1502 of FIG. 15 may be substantiallysimilar to step 1102 of FIG. 11 , and the previous description of thelatter may apply to the former.

At step 1504, analyzation software or analyzation algorithms may be runon the uploaded file. The analyzation software may review data includedin the file used to create a 3D object. In some embodiments, theanalyzation software may look for design optimization areas associatedwith the 3D object to be created by the uploaded file. For example, thesoftware may look for errors associated with the design of the object.

At step 1506, a determination may be made about whether or not anyerrors or potential areas for improvement/optimization may exist withinthe 3D object. If, at step 1506, it is determined that no errors exist,or there are not potential areas within the designed that may beoptimized based on the analyzation software, then process 1500 mayproceed to step 1508 where a price quote for creating the 3D object, ormold for the 3D object, may be generated. In some embodiments, step 1508of FIG. 15 may be substantially similar to step 1312 of FIG. 13 , andthe previous description of the latter may apply to the former.

If, however, at step 1506, one or more errors are detected, then process1500 may proceed to step 1510. At step 1510, the various detected areasmay be determine where in the initially uploaded file the errors exist.For example, object 1402 of FIG. 14 may have an error associated withit. As a particular example, the thickness of wall 1404 may bedetermined to be too thin based on the wall's specifications and/ordesign as described within the uploaded file.

At step 1512, the determined errors may be displayed on the user'sdisplay screen. For example, wall 1404 may have an error associated withits thickness, and therefore this error may be presented to the user. Asanother example, it may be determined that protrusion 1404 may also betoo thin, and therefore this error may also be presented to the user.

At step 1514, modifications to the design of the object may be suggestedto the user. The suggested modifications may attempt to solve thedetermined errors of the design. For example, if wall 1404 is determinedto be too thin, then a suggestion to increase the wall's thickness maybe suggested. As another example, if wall 1404 is determined to be toothin, a suggestion to add a stability structure, like a support rod, maybe presented. In some embodiments, the various suggestions may bepresented to the user within a user interface, such as user interface1400, which may allow the user to select one or more of the suggestedmodifications. In some embodiments, the user may be presented with thesuggested modification and decide to not implement them. In thisparticular scenario, process 1500 may then proceed to step 1508 where aprice quote for the 3D object may be generated. As an illustrativeexample, in order to fix a determined error, the only modification maybe to alter the design of object 1402 to a format that the user does notlike. In this scenario, the user may decide that they would rather havethe design they prefer as opposed to modifying their design to implementthe suggested modification(s).

Process 1500 may, in some embodiments, then proceed to optional step1516. At step 1516, one or more of the suggested modifications may beimplemented within the design of the object. For example, the user maydecide to increase the thickness of wall 1404, and therefore the datawithin the original file indicating the wall's thickness may be changed.In some embodiments, specific changes may be suggested and implemented.For example, a suggestion to modify the thickness of wall 1404 from 2 mmto 10 mm may be presented, and upon implementation, the original filemay have the data corresponding to the wall's thickness increased from 2mm to 10 mm. After implementation of the modification(s), process 1500may then proceed to step 1508.

FIGS. 16A and 16B are illustrative diagrams of client-side userinterfaces for using application specific tools with designs inaccordance with various embodiments. User interface 1600 may displayobject 1602 therein. In some embodiments, object 1602 may correspond toan application specific tool. For example, a drill guide used forcertain surgeries may have a specific size, or standardized dimensions.In some embodiments, 3D design files corresponding to various toolsand/or objects may be stored in a library of files resident on a server(e.g., server 102 of FIG. 1 ). For example, the dimensions and size of asurgical drill guide may be standardized such that each one should besubstantially similar. One or more files may be stored on the serversuch that a user may access the file to create 3D objects of the guide.In some embodiments, the user may upload a new file describing a new 3Dobject to be created. For example, the user may upload a file describingobject 1602. In this particular scenario, the user may seek to createmultiple copies of object 1602 quickly and cost efficiently.

User interface 1650 may display a means for creating molds for objectsto be produced using 3D printing capabilities. In some embodiments, thefile including object 1602 may be uploaded to a server, which may createa negative mold based on object 1602. For example, object 1602 may becapable of being formed using first mold 1604 a and second mold 1604 b(collectively mold 1604). In some embodiments, mold 1604 may include anegative space corresponding to a volume that may be used to createcopies of an object, such as object 1602. For example, first mold 1604 amay include first negative space 1606 a, and second mold 1604 b mayinclude second negative space 1606 b. When first mold 1604 a and secondmold 1604 b are placed together, first and second negative spaces 1606 aand 1606 b may together form a negative space corresponding to the sizeand shape of object 1602. In this particular scenario, one or more 3Dprinting techniques may be used to create copies of object 1602 byfilling or injecting material into negative spaces 1606 of mold 1604.Thus, multiple copies of standardized objects, or newly created objects,may be produced quickly and easily at a minimal expense.

FIG. 17 is a flowchart of an illustrative process for applyingapplication specific tools in accordance with various embodiments.Process 1700 may begin at step 1702. At step 1702, a file including a 3Dobject, or an image of a 3D object, may be uploaded to a server. Forexample, a file including data corresponding to object 1602 may beuploaded to a server. In some embodiments, the 3D object may be selectedfrom a library of objects stored on the server. For example,standardized tools and or components for medical procedures, safetymaterials, or any other field, may be pre-loaded onto the server as fileincluding data for forming 3D objects of the component.

At step 1704, a negative spacing within a mold may be created. Thenegative spacing may correspond to the size and specifications of the 3Dobject to be produced. For example, negative spacing 1606 may correspondto the size and shape of object 1602 (e.g., a cylinder). In someembodiments, the mold may include multiple portions to form the negativespacing. For example, first negative space 1606 a may be included withinfirst mold 1604 a, whereas second negative spacing 1606 b may beincluded within second mold 1604 b. Combined, molds 1604 a and 1604 bmay create a negative space corresponding to the size and shape ofobject 1602. Persons of ordinary skill in the art will recognize thatany number of molds may be used to create the negative spacing, and theuse of two is merely exemplary. For example, the negative spacing mayrequire three molds to be joined together to accurately form thenegative spacing.

At step 1706, a 3D CAD file may be created for the mold including thenegative space. For example, a 3D CAD file describing the size andspecifications corresponding to mold 1604 including negative space 1606may be created. This may allow a user to create multiple copies ofobject 1602 using mold 1604. In some embodiments, the user may be ableto customize the mold to include additional features. For example, theuser may request that the mold be reinforced with a strong material,such as a metal, or that a customized element may be included within themold to be printed on any objects created thereby.

At step 1708, a price quote may be generated for creating the 3D object,the 3D mold used to create the object, and/or both the object and the 3Dmold. In some embodiments, step 1708 of FIG. 17 may be substantiallysimilar to step 1312 of FIG. 13 and the previous description of thelatter may apply to the former.

FIGS. 18A and 18B are illustrative diagrams of client-side userinterfaces for converting a 2D file into a 3D file in accordance withvarious embodiments. User interface 1800 of FIG. 18A may be presented toa user on a display screen of a client device. In some embodiments, userinterface 1800 may display a 2D image of a 2D object. For example, auser may upload a file including design specifications and/or data for a2D object, such as 2D object 1802.

In some embodiments, the user may desire to convert the 2D object to a3D object for 3D printing. For example, 3D object 1804 may be created byconverting 2D object 1802 to a 3D object. In some embodiments, theconversion from 2D to 3D may occur automatically on the server. Forexample, the server may analyze the initially uploaded file includingthe 2D object, and extract a third dimension based on the designcharacteristics. As another example, the user may be able to input athird dimension to the 2D object so that a 3D version of the object maybe created.

FIG. 19 is a flowchart of an illustrative process for converting a 2Dfile into a 3D file in accordance with various embodiments. Process 1900may begin at step 1902. At step 1902, a user may upload a filedescribing a 2D object. For example, an initially uploaded file maydescribe a 2D object, such as object 1802 of FIG. 18A. In someembodiments, the initially uploaded file may include data correspondingto two dimensions (e.g., length and width) of an object to be formed.For example, a user may want to imprint a logo onto a 3D object to becreated, and thus may initially design the logo as a 2D object within afile.

At step 1904, the 2D object may be converted to a 3D object. In someembodiments, the third dimension may be extracted or extruded from thedesign of the 2D object. For example, the server may analyze the filedescribing the 2D object or image, and may determine an appropriate sizefor a third dimension. As another example, the user may input a thirddimension size directly to the server based on the user's preferences.In this particular scenario, the user may be provided with aninteractive display option allowing the user to manually select specificvalues for the additional dimension. For example, a height dimension maybe added to object 1802 to convert it to 3D object 1804, where theheight dimension may be some fraction or ratio of the length and/orwidth of object 1802.

At step 1906, a new version of the initially uploaded file may becreated that includes the design specifications and data correspondingto the 3D object. For example, if the initially uploaded file was a CADfile describing object 1802, having height and length data, a new filemay be created including newly added width data. This may allow the userto obtain a price quote for generating one or more 3D objects (e.g.,object 1804) and/or one or more molds of a 3D object based on the newfile including specifications and data corresponding to a 3D object.

FIG. 20 is an illustrative diagram of a client-side user interface fordetermining optimization capabilities for a design in accordance withvarious embodiments. User interface 2000 may present a 3D object to auser on their client device based on a previously uploaded and/orselected file. In some embodiments, the user may input one or moredesign parameters or characterizations for the object. Based on theinputted parameters and/or characterizations, the server may determinevarious optimization capabilities for the design. In some embodiments,the user may input a specified use for the object, and based on the use,one or more optimization modifications may be highlighted for the user.In some embodiments, the design optimization may be automated. Forexample, one or more algorithms resident on the server may analyze theuploaded file to determine ways to optimize the design or process forcreating the 3D object. As another example, each design may be reviewedby an expert or trained individual to look for potential areas ofweakness within the design or aspects of the design that may beimproved.

In some embodiments, the 3D object displayed within user interface 2000may include base portion 2006 that includes protrusion 2002 extendingaway from the base via extension 2004. Initially, the design process forcreated the object having components 2002, 2004, and 2006 may call for afirst thickness. However, upon review of the process for creating a moldfor the object, it may be determined that a second thickness may be moreoptimal for the design for providing stability. As another example, thedesign process may determine that extension 2004 may be more stable ifan insert (e.g., a rod) is used for support. In some embodiments,highlighted region 2008 may be presented to the user to highlighted orcalled out any potential areas within the design or process that may beoptimized. For example, highlight region 2008 may call out the fact thatextension 2004 may be too thin to support protrusion 2002. In thisparticular scenario, one or more remedies to the highlighted issue maybe suggested to the user for implementation into their design.

FIG. 21 is a flowchart of an illustrative process for displaying designoptimizations in accordance with various embodiments. Process 2100 maybegin at step 2102. At step 2102, an initial file may be uploaded to aserver from a client device. In some embodiments, step 2102 of FIG. 21may be substantially similar to step 1102 of FIG. 11 , and the previousdescription of the latter may apply to the former.

At step 2104, recommendations for design optimizations may be providedto the user. In some embodiments, the user may input various propertiesor characteristics for the design of the object to be created. Based onthe inputted properties/characteristics, various recommendations may bepresented to the user for their design. In some embodiments, one or morealgorithms to determine potential trouble points within the design mayanalyze the geometry of the object.

At step 2106, the design optimizations may be displayed to the user ontheir client device. For example, the user may be presented with userinterface 2000 including highlighted region 2008. Highlighted region2008 may indicate a potential area where a design optimizationrecommendation may be beneficial. In some embodiments, any designoptimizations may automatically be implemented within the design fileassociated with the displayed image. For example, the one or morealgorithms used to detect any troublesome regions (e.g., extension 2004)may also fix the detected issues automatically. In this way, the usermay be presented with a “cured” object free of any potential troublepoints.

FIGS. 22A and 22B are illustrative diagrams of client-side userinterfaces for applying finite element analysis to a design inaccordance with various embodiments. User interface 2200 may presentedan uploaded file that has an finite element analysis (“FEA”) bitmapmapped onto it. In some embodiments, FEA techniques may be applied to anuploaded design file to determine areas of potential displacements bycomponents of the design, strain or stress points, and/or influences onstructural stability of the design based on various internal and/orexternal pressure loads. The FEA bitmap may be applied over theinitially uploaded file at any point during the design process.

In some embodiments, user interface 2200 may present a 3D object thathas had a FEA bitmap applied to it in a perspective view. For example,user interface 2200 may correspond to a side view of a 3D object showingvarious strain or stress points applied by finite element analysis. Insome embodiments, regions that are shaded in green may be consideredstructurally stable when certain strains or stress are applied to theobject. For example, region 2206 may correspond to a region of an objectthat may be structurally stable for a certain load weight or strain. Insome embodiments, regions shaded in red or blue may correspond to areasthat are structurally more susceptible to issues from applied strains orstresses. For example, regions 2202 and 2204 may correspond to regionsof an object where, if pressure where to be applied, significant strainor stress may be caused to that region, which may compromise thestability and integrity of the object. User interface 2250 maycorrespond to a perspective view of the same object displayed withinuser interface 2200, and the previous description of the latter may alsoapply. Persons of ordinary skill in the art will recognize that anysimulation and calculation of displacements and stresses related to a 3Dobject having may be performed using finite element analysis and anycolor scheme or display method may be used to represent the analysis.For example the effects of force, pressure, acceleration, temperature,contact, density, collisions, may be determined using finite elementanalysis.

FIG. 23 is a flowchart of an illustrative flowchart for applying finiteelement analysis to a design in accordance with various embodiments.Process 2300 may begin at step 2302. At step 2302, a file describing a3D object may be uploaded from a client device to a server. In someembodiments, step 2302 of FIG. 23 may be substantially similar to step1102 of FIG. 11 , and the previous description of the latter may apply.In some embodiments, the uploaded file may correspond to a specific partof a design. For example, a multi-component design may have a finiteelement analysis applied to one or more specific components, and thosecomponent's files may be uploaded.

At step 2304, a finite element analysis may be mapped to the objectdescribed by the uploaded file. The finite element analysis may be usedto calculate the effects of force, pressure, acceleration, temperature,contact, or density, or any other effect, or any combination thereof, tothe designed part. For example, finite element analysis may be performedto an object shown within user interface 2100 of FIG. 21 . The FEA maybe used to determine the effects of strain in the z-axis on the objectdue to various load forces.

At step 2306, a bitmap of the FEA may be uploaded to the server. Forexample, the user may upload the FEA bitmap to the server in response tothe analysis completing. In some embodiments, the FEA bitmap may beuploaded to the server automatically in response to the mapping of theFEA to the object. The bitmap may be used to help visualize the resultsof the FEA in relation to the object's geometry.

At step 2308, the FEA bitmap may be displayed on the user interfacemapped to the 3D object. For example, user interface 2200 and 2250 maypresent a 3D object in a side view and from a perspective view after aFEA bitmap has been mapped onto the object being analyzed. In someembodiments, this process may be performed in conjunction with step 2306such that both may be performed automatically be the server and at asubstantially same time.

At step 2310, the results of the FEA bitmap mapping may be analyzed todetermine potential problem points or issues with the designed object.For example, the FEA map may point out, using color density plots, areasof the designed 3D object where structural issues may occur uponproduction of the object. For example, red region 2204 may correspond toan extension piece of the object that may be too thin. Thus, in responseto performing the FEA on the object, it may be determined that this areamay be susceptible to significant strain. In some embodiments, if acertain region (e.g., region 2204) is determined to be troublesome, oneor more options may be provided to the user to remedy the potentialregion. For example, if region 2204 is determined to be too thin, anoption may be provided to increase the thickness of this region. In someembodiments, in response to performing the FEA mapping onto the object,the user may determine that the design is satisfactory and request aprice quote on the object via user interface 300 of FIG. 3 .

The various embodiments described herein may be implemented using avariety of means including, but not limited to, software, hardware,and/or a combination of software and hardware. The embodiments may alsobe embodied as computer readable code on a computer readable medium. Thecomputer readable medium may be any data storage device that is capableof storing data that can be read by a computer system. Various types ofcomputer readable mediums include, but are not limited to, read-onlymemory, random-access memory, CD-ROMs, DVDs, magnetic tape, or opticaldata storage devices, or any other type of medium, or any combinationthereof. The computer readable medium may be distributed overnetwork-coupled computer systems. Furthermore, the above describedembodiments are presented for the purposes of illustration are not to beconstrued as limitations.

What is claimed is:
 1. A method for generating a price quote for a 3Dobject to be molded from a 3D printer, the method comprising: receivingan initial file associated with at least one 3D object to be formed;obtaining a selection of at least one parameter for the at least one 3Dobject; and generating a price quote based on the at least one parameterand the initial file.
 2. The method of claim 1, wherein generatingfurther comprises: generating the price quote based on a 3D ComputerAided Design (“CAD”) file associated with the initial file.
 3. Themethod of claim 2, wherein: the 3D CAD file associated with the initialfile is the same as the initial file.
 4. The method of claim 1, furthercomprising: providing a checkout option to purchase the at least one 3Dobject based on the generated price quote.
 5. The method of claim 1,further comprising: converting the initial file to a 3D CAD file.
 6. Themethod of claim 1, wherein: a server receives the initial file; and aclient device transmits the initial file to the server.
 7. The method ofclaim 1, wherein the initial file comprises at least one of: an STLfile, an IGES file, a STEP file, a Catia file, a Solid Works file, aProE file, a 3D Studio file, a Rhino file, a JPEG file, and a GIF file.8. The method of claim 1, wherein the initial file comprises a 2D file,the method further comprises: converting the 2D file to a 3D CAD file.9. The method of claim 1, wherein the at least one parameter comprisesat least one of: dimensions of the 3D object; a material to form the 3Dobject; a quantity of the 3D object to be made; and a finish of the 3Dobject.
 10. The method of claim 1, wherein: the initial file comprisesmetadata; and the metadata comprises at least one of geographical andtemporal data.
 11. The method of claim 10, wherein generating furthercomprises: generating an additional price quote for a background to beformed based on the metadata associated with the initial file.
 12. Themethod of claim 1, further comprising: storing at least one of theinitial file, the at least one selection parameter, and the generatedprice quote in a database.
 13. A method for optimizing price quotes,comprising: receiving an initial file associated with at least one 3Dobject to be formed; determining, based on the initial file, a designchange for the at least one 3D object to be formed; creating a modifiedversion of the initial file comprising the design change; and generatinga price quote based on the modified version of the initial file.
 14. Themethod of claim 13, wherein determining further comprises: determining apotential design issue for the at least one 3D object.
 15. The method ofclaim 14, wherein creating further comprises: correcting the potentialdesign issue within the modified version of the initial file byimplanting the design change.
 16. The method of claim 13, whereindetermining further comprises: providing the design change to correct apotential design issue for the at least one 3D object.
 17. The method ofclaim 13, further comprising: selecting at least one option for the atleast one 3D object to be formed.
 18. The method of claim 17, whereingenerating further comprises: generating the price quote based on themodified version of the initial file and the selected at least oneoption.
 19. A method, comprising: receiving a 2D file comprising a 2Dimage; converting the 2D image into a 3D image; creating a 3D CAD filecomprising the 3D image; and generating a price quote for a 3D object tobe formed based on the created 3D CAD file.
 20. The method of claim 19,wherein receiving further comprises: uploading the 2D file to a serverfrom a client device.
 21. The method of claim 19, further comprising:printing the 3D object based on the created 3D CAD file.
 22. The methodof claim 19, wherein converting further comprises: extracting a surfacefrom the 2D image to be used for creating the 3D image.
 23. The methodof claim 19, wherein the 2D object comprises a first dimension and asecond dimension, converting further comprises: obtaining a selection ofa third dimension from a user, the third dimension being used with thefirst dimension and the second dimension to create the 3D object.